package entidadesBD;

import java.io.Serializable;

import javax.persistence.*;

import entidadesVO.*;

@Entity
@Table(name="medida")
public class Medida implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private String unidad;
	private float largo;
	private float alto;
	private float ancho;
	private String comentarios;
	private Accesorio accesorio;
	
	private int codigoMedida;
	
	public Medida(String unidad, float largo, float alto, float ancho, String comentarios, Accesorio accesorio) {
		this.unidad = unidad;
		this.largo = largo;
		this.alto = alto;
		this.ancho = ancho;
		this.comentarios = comentarios;
		this.accesorio = accesorio;
	}
	/*
	 * Constructor Vacio
	 */
	public Medida(){

	}
	
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	public int getCodigoMedida(){
		return codigoMedida;
	}
	public void setCodigoMedida(int codigoMedida){
		this.codigoMedida = codigoMedida;
	}
	
	@OneToOne(mappedBy = "medida")
	public Accesorio getAccesorio(){
		return this.accesorio;
	}
	public void setAccesorio(Accesorio accesorio){
		this.accesorio = accesorio;
	}
	
	@Column
	public float getAlto() {
		return alto;
	}
	public void setAlto(float alto) {
		this.alto = alto;
	}
	
	@Column
	public float getAncho() {
		return ancho;
	}
	public void setAncho(float ancho) {
		this.ancho = ancho;
	}

	@Column
	public String getComentarios() {
		return comentarios;
	}
	public void setComentarios(String comentarios) {
		this.comentarios = comentarios;
	}

	@Column
	public float getLargo() {
		return largo;
	}
	public void setLargo(float largo) {
		this.largo = largo;
	}

	@Column
	public String getUnidad() {
		return unidad;
	}
	public void setUnidad(String unidad) {
		this.unidad = unidad;
	}
	
	@Transient
	public MedidaVO getMedidaVO(){
		MedidaVO medidaVO = new MedidaVO(unidad, largo, alto, ancho, comentarios);
		medidaVO.setCodigoMedida(codigoMedida);
		return medidaVO;
	}
	
	public void setMedida(MedidaVO medidaVO){
		this.unidad = medidaVO.getUnidad();
		this.largo = medidaVO.getLargo();
		this.alto = medidaVO.getAlto();
		this.ancho = medidaVO.getAncho();
		this.codigoMedida = medidaVO.getCodigoMedida();
	}
}
